﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;

namespace Csharp基础作业
{
    class Animal
    {
        public void Eat()
        {
            MessageBox.Show("The animal is eating.");
        }
    }

    class Dog : Animal
    {
        public void Bark()
        {
            MessageBox.Show("The dog is barking.");
        }
    }

    public static class Work3
    {
        public static void run()
        {
            // 派生类引用变量到基类引用变量的转换
            Dog dog = new Dog();
            Animal animal = dog; // 将Dog对象转换为Animal引用

            MessageBox.Show("Try to run animal.Eat();");
            animal.Eat(); // 可以访问从Animal类继承的方法

            // 基类引用变量到派生类引用变量的转换
            Animal animal2 = new Dog();
            Dog dog2 = (Dog)animal2; // 将Animal对象强制转换为Dog引用

            MessageBox.Show("Try to run dog2.Eat() and dog2.Bark();");
            dog2.Eat(); // 可以访问从Animal类继承的方法
            dog2.Bark(); // 可以访问Dog类特有的方法
        }
    }
}
